]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
overviewControls: Adjust heuristic for hiding workspace switcher
authorFlorian Müllner <fmuellner@gnome.org>
Sat, 22 Oct 2011 14:48:01 +0000 (16:48 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 30 Apr 2014 16:06:52 +0000 (18:06 +0200)
The workspace switcher should be expanded when workspaces are in use.
Our current implementation assumes that workspaces are used when there
are windows on at least two workspaces. However workspaces are already
used when moving from a non-empty workspace to an empty one (presumably
with the intention to launch something on that workspace), so tweak the
heuristic accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=662457

js/ui/overviewControls.js

index ade0f191fc7d2bc5a8cf1ca282137df73fbce3bd..b396ff012d7c2c98096b08abea1be823eb374b43 100644 (file)
@@ -259,13 +259,18 @@ const ThumbnailsSlider = new Lang.Class({
 
         Main.layoutManager.connect('monitors-changed', Lang.bind(this, this._updateSlide));
         this.actor.connect('notify::hover', Lang.bind(this, this._updateSlide));
+        global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSlide));
         this._thumbnailsBox.actor.bind_property('visible', this.actor, 'visible', GObject.BindingFlags.SYNC_CREATE);
     },
 
     _getAlwaysZoomOut: function() {
         // Always show the pager when hover, during a drag, or if workspaces are
-        // actually used, e.g. there are windows on more than one
-        let alwaysZoomOut = this.actor.hover || this._inDrag || !Meta.prefs_get_dynamic_workspaces() || global.screen.n_workspaces > 2;
+        // actually used, e.g. there are windows on any non-active workspace
+        let alwaysZoomOut = this.actor.hover ||
+                            this._inDrag ||
+                            !Meta.prefs_get_dynamic_workspaces() ||
+                            global.screen.n_workspaces > 2 ||
+                            global.screen.get_active_workspace_index() != 0;
 
         if (!alwaysZoomOut) {
             let monitors = Main.layoutManager.monitors;